#ifndef GAMEWIDGET_H
#define GAMEWIDGET_H

#include <QWidget>
#include "rankinglist.h"
#include <QPainter>

namespace Ui {
class GameWidget;
}

class GameWidget : public QWidget
{
    Q_OBJECT
private:
    int gameMatrix[4][4];   //16个元素的二维矩阵
    int judgeMove;  //判断矩阵数据是否发生改变，发生改变则产生随机数
    RankingList rankingList;    //排行榜界面

public:
    explicit GameWidget(QWidget *parent = nullptr);

    ~GameWidget();

private slots:
    void display(); //显示
    void changMatrixUp();   //点击up键数组改变算法
    void changMatrixDown();   //点击down键数组改变算法
    void changMatrixLeft();   //点击left键数组改变算法
    void changMatrixRight();   //点击right键数组改变算法
    void generateRandom();   //产生随机数

    void on_btnUp_clicked();   //点击up键
    void on_btnDown_clicked();   //点击down键
    void on_btnLeft_clicked();   //点击left键
    void on_btnRight_clicked();   //点击right键
    void on_btnStart_clicked();   //点击start键
    void on_btnReset_clicked();   //点击reset键

    void returnBack();  //返回主界面
    int sameElment();   //判断游戏是否还能继续进行，能返回1，不能返回0

private:
    Ui::GameWidget *ui;

};

#endif // GAMEWIDGET_H
